国家统计局总统计师曾玉平在发布会直播中表示:“普查数据质量是普查统计工作的生命线……利用信息化,对普查方式进行创新:首次全面采用电子化,实时及时上报数据;首次实现普查对象通过互联网自主填报;首次利用行政大数据进行比对核查;首次实现利用互联网云计算云服务实时处理工作;首次用信息化系统对700多万普查员进行线上管理。”腾讯云在背后为第七次全国人口普查保驾护航。据统计,在该项目中,腾讯云数据库支持了十亿级用户数据、七百万个终端和百万级峰值TPS(每秒事务处理量)。
一、高并发、高复杂度实时统计和分析查询的要求
在这个普查过程中,700万普查员使用微信小程序进行数据采集,约一亿人使用微信自主填报小程序进行信息录入,海量数据全部实时入库;与此同时,为了便于假如数据采集出现问题能够在第二天及时补充采集、修正,系统同时需要快速完成对入库数据的实时查询分析。
“大量的数据要收集上来,同时数据的更新和数据的查询是互相交错的,不仅要应对动态的人口流动,比如一个人今天在深圳而明天在北京,同时要准确对应起人和户、人和人之间的关系。”据介绍,使用电子化方式开展全国人口普查工作,涉及范围广、统计维度多、技术难度大。团队专家决定再在小程序和TDSQL之间加上腾讯云Redis,将其作为缓存承接所有终端涌入的数据,然后把数据落入TDSQL中。有了这么一道缓存墙,业务运行中既能从容应对暴涨的流量,也能防止小程序突然崩溃,给这次普查上了一道“双保险”。这背后也意味着,对背后的数据库技术在并发性、可靠性、一致性、扩展性、稳定性,以及复杂查询分析能力提出极高的要求。如何在十几亿中国人的数据在15天内涌入时保证用户体验和服务可持续性?如何缩短登记时间同时保证数据安全?如何在动态人口流动中准确登记、高效完成多个超大表关联实时分析?……
二、腾讯云数据库TDSQL解决之道
1. 为亿级数据装上“双引擎”
700多万B端混合负载业务、十几亿C端OLTP业务、海量的数据分析任务……本次全国人口普查项目,腾讯云数据库提供了既具有擅长OLTP场景能力,同时擅长联机分析处理OLAP场景能力引擎的企业级分布式数据库TDSQL,通过“双引擎”设计支撑人口普查工作完成。前者专门用来做前端生产系统的事务处理,其最大的优点是即时地处理输入的数据,并及时响应,实时保持系统数据处于最新状态;后者负责后期数据联机查询分析处理,支持复杂的分析操作。双引擎技术能力的融合,完整、平稳、高效地支撑了全国人口普查数据登记及统计分析整个体系化工作。其中,OLTP引擎提供了支撑大并发的性能,包括线程池、无锁优化等等,支撑3万+的数据库连接;强同步技术在跨可用区的情况下,满足高吞吐量、主备数据一致性和高可用的能力;弹性的容量伸缩,可根据实际运营情况进行容量水平扩展。此外,智能运营系统“扁鹊”,则可针对性能较低的SQL给出优化建议,同时自动评估业务的事务模型,降低锁冲突,提升并发能力。测试中,TDSQL数据库应对高并发场景时可以实现最高数百万每秒的吞吐量,这样的吞吐规模已经可以满足目前中国人口2倍的数量。借此实力,实际统计中TDSQL数据库自然扛住了普查过程中的并发高峰。同时,业务具有大规模实时查询分析的需求,普查员在前端不断录用的数据也将在TDSQL OLAP能力引擎中进行进一步的数据分析。在分析型功能特性方面,TDSQL OLAP集群通过对多表join查询、复杂子查询、聚合运算、DN数据高效重分布表现上进行了极大的优化,大大地缩短了业务报表分析时间。据介绍,TDSQL支持目前市面上几乎全部标准的OLAP复杂查询计算模型,包括TPCDS等,各类复杂查询业务需求。同时,在此过程中,OLAP分析计算开销大、延迟长,同时还要满足海量的并发请求,TDSQL OLAP引擎通过水平扩展多个只读平面,为复杂查询分析场景提供线性读扩展能力,并通过在多个平面前置负载均衡做到扩缩容业务完全无感知。据了解,在这些庞大的数据中,不乏多张超级大表关联高并发统计查询,其每张表中存放了超过20亿+条记录。如果把其中存放一张超级表的空间用来存放平均50万字的书籍,可以放下超过1000万本,一个人终其一生也读不完。更重要的是,基于全局一致性技术,可实时保障多平面下内部的全局读一致性。规模浩瀚的人口普查工作,系统业务架构复杂、并发度高,在灾备设计、高可用能力保障上,整个数据库采用了一主三从、强同步复制和异地灾备的备份方案,在某个数据节点出现故障时,都能保证数据的完整和一致;哪怕出现大规模的突发情况,通过异地灾备,也能够进行数据恢复。TDSQL 的安全性经过了腾讯各类核心业务10余年大规模产品的验证,包括社交、电商、支付、音视频等不同类型的产品。在灾备方面,TDSQL提供完善的数据备份、容灾、一键升级、快速恢复,以及数据库防火墙、透明加密等功能,同时建立起完善的监控和报警体系,大部分故障都通过自动化程序处理恢复。在整个过程中,TDSQL从早期就磨炼下来的企业级安全特性能力,持续为人口普查工作保驾护航。此外,为了让整个普查过程能够更加容易感知,腾讯云图将普查收集到的海量数据进行处理,通过数字大屏和饼状图等工具实时清晰地展示人口报送情况,并对各省报送情况进行动画效果展示,使得普查小组能够更加直观地了解整体情况和各地普查进度,根据大屏信息安排进一步的工作,提高工作效率。完成了数据“上传——入库——分析——展示”的最后一公里。全国人口普查的电子化推进,TDSQL“OLTP+OLAP”双引擎设计融合一起承接了峰值超过百万级TPS,另外OLAP集群还额外支撑峰值千万级万次的统计查询服务,助力第七次全国人口普查工作顺利完成。同时,据新华网统计报道,与2010年全国第六次人口普查的纸表入户登记方式相比,电子采集的方式将登记时间缩小到了20分钟以内,也很大程度上降低了后期数据录入、处理的难度。
可以说,这标志着,社会生活的方方面面都已逐步迈入信息化智能化的云时代,我国自研的信息化技术可常态化满足社会大规模信息化应用需求,且能够满足政府金融等行业领域的数字需求,在任务量巨大的极端情况下安全可靠。
明天(5月13日) 19:00-20:00,腾讯云老司机分享《萌新云数据库学习指南》,手把手带你入门数据库。还有免费培训课、Q币、周边大礼包等你来拿,扫码即可参与~